1. Field of the Invention
This invention relates to digital processors and to circuits that manipulate data for of a shift instruction or align data for a load/store instruction.
2. Description of Related Art
Processors typically have specialized circuit units that preform specific operations required for execution of different types of instructions. For example, a typical processor includes a load/store unit that accesses memory as required by load/store instructions and an arithmetic logic unit (ALU) that performs arithmetic operations as required by instructions that add, subtract, multiply, divide, shift, or perform Boolean operations on source operands. The various circuit units in a processor typically contain circuitry that is adapted to the particular functions of the unit and is not usable by other circuit units.
Data alignment is a desirable function in a load/store unit of a wide data width processor such as a SIMD (single instruction multiple data) processor. Without data alignment, an instruction accessing a memory system may be limited to aligned addresses which are integer multiples of the data width. This could complicate programming. Data alignment is, however, an expensive function to implement in an SIMD processor since alignment hardware often includes a network of multiplexers capable of moving a byte from any position within the data width to any other position within the data width. For instance, data alignment hardware for a 32-byte data width might include 32 32-to-1 multiplexers each having 1-byte data ports. Such alignment hardware occupies considerable integrated circuit area and increases the cost of a SIMD processor integrated circuit.